Rendering multimedia can be a processor-intensive exercise. Insufficient processing power can result in glitches in media rendering, like a delay in a soundtrack or video playback of a movie.
In part to address this need for greater processing power, computing devices have been designed to execute more than one processing thread at a time. Some media-rendering processes have components that take advantage of these devices by allocating and using their own threads.
But building components able to allocate their own threads can be more difficult than building components without this ability. Also, these components may use significant processing resources to create and manage their own threads.
These components also may allocate threads poorly. They may use too many or too few processing resources, often because they are not fully aware of upstream and downstream components of a multimedia pipeline of which they are a part. They may also create too many threads, thereby wasting processing resources used to switch between threads.